1. Field of the Invention
The present invention relates to computer software, and more particularly to IMS databases.
2. Description of the Related Art
The current technique of unloading an IMS database is to retrieve the individual database segments in hierarchical order using physical pointers stored within each segment prefix. Retrieving an IMS database in hierarchical order normally results in reading the database blocks in random order, and often reading the same block multiple times during the unload process. Additionally, the I/O operations used during a standard unload of an IMS database are often unanticipated and are generally the lowest performing type of I/O operation.
FIG. 2 illustrates the hierarchical order of segments in an IMS database. As shown, segments 1 and 3 are root segments, and all of the remaining segments are child segments. Retrieving the database record beginning with root segment 1 requires 3 blocks to be read, as follows: read block 1 to obtain segments 1 and 2, read block 6 to obtain segment 52, read block 4 to obtain segment 31. Similarly, retrieving the database record beginning with root segment 3 also requires 3 blocks to be read, as follows: read block 1 to obtain segment 3, read block 4 to obtain segment 32, read block 7 to obtain segment 63.
Therefore, retrieving an IMS database record requires a number of different block reads, resulting in slow access times and long latencies. For at least the foregoing reasons, there is a need for an improved system and method for unload processing of IMS databases in a more efficient manner.